#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef double db;

#define pii pair<db,db>
#define fi first
#define se second

const int N = 55;

int a[N],T,n;
db p;

pii operator + (pii x,pii y){return pii(x.fi+y.fi,x.se+y.se);}

pii dfs(int s,int mn){
	if(s > T) return pii(0.0,0.0);
	pii v = pii(0.0,0.0);
	db t = (1 - p) / mn; if(!s) t = 1.0 / mn;
	for(int i = 1;i <= mn;i++) v = v + dfs(s+a[i],i);
	return pii(p / (1 - t * v.fi),(v.se * t + 1) / (1 - t * v.fi));
}

int main (){
#ifndef ONLINE_JUDGE
	freopen("1.in","r",stdin);
#endif
	while(scanf("%lf %d %d",&p,&T,&n) != -1){
		for(int i = 1;i <= n;i++) scanf("%d",&a[i]);
		sort(a+1,a+n+1);
		pii ans = dfs(0,n);
		printf("%.3lf\n",ans.se);
	}
	return 0;
}

